home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / R-Shows / (c)woc x 92a.d64 / ski! (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  7KB  |  182 lines

  1. 100 REM SKI
  2. 110 DEFFNLG(X)=LEN(STR$(X))-2
  3. 120 POKE53280,5:POKE53281,1:POKE53272,21
  4. 130 S=54272:FORQ=STOS+24:POKEQ,0:NEXT
  5. 140 PRINT"[147]SKI!"
  6. 150 PRINT"    THE IDEA OF THIS GAME IS TO SKI FOR"
  7. 160 PRINT"AS LONG AS POSSIBLE WITHOUT BEING"
  8. 170 PRINT"CARRIED AWAY IN A DOG SLED.  YOUR BEST  ";
  9. 180 PRINT"RUNS WILL BE SAVED TO DISK.  YOU MUST"
  10. 190 PRINT"NOT HIT A TREE, ROCK OR AN ICE PATCH."
  11. 200 PRINT" LOADING SPRITES, CHARACTERS, AND M.L."
  12. 210 GOSUB1100:IFCK<>40275THENPRINT"[147]TYPOS IN DATA STATEMENTS":END
  13. 220 SYS49290:POKE251,0:DIMHS$(40),HS(40)
  14. 230 GETA$:IFA$=""THENGOSUB990
  15. 240 OPEN1,8,2,"HIGHS,S,R"
  16. 250 FORQ=1TO40:INPUT#1,HS$(Q),HS(Q):NEXT
  17. 260 CLOSE1:POKE53272,30
  18. 270 PRINT"[147]         **** SKI! RECORDS ****"
  19. 280 FORQ=1TO20:PRINTTAB(4-FNLG(Q));STR$(Q);TAB(6);". ";HS$(Q);
  20. 285 PRINTTAB(16-FNLG(HS(Q)));HS(Q);
  21. 290 PRINTTAB(23);Q+20;"[157]. ";HS$(Q+20);TAB(36-FNLG(HS(Q+20)));HS(Q+20)
  22. 300 NEXT
  23. 310 PRINT"           PRESS FIRE TO PLAY"
  24. 320 IF(PEEK(56320)AND16)THEN320
  25. 330 REM PLAY
  26. 340 PRINT"[147]";:POKE648,60:PRINT"[147][192][193][192][193][144] SCORE:        RANKING:         [192][193][192][193]"
  27. 350 SYS49152:POKE648,4
  28. 360 SC=0:R=40:W=32:BC=53279:N=200:B=4
  29. 370 POKE2040,194:POKE53269,1:POKE53248,180:POKE53249,160:POKE53287,0:Z=PEEK(BC)
  30. 380 S=54272:FORQ=STOS+24:POKEQ,0:NEXT:POKES+24,15:POKES+6,128:POKES+1,5
  31. 390 POKES+4,129:POKE53264,0:POKE251,1
  32. 395 FORQ=1TO25:PRINT"[192][193]                                    [193][157][148][192]":NEXT
  33. 400 REM GENERATE COURSE
  34. 410 POKE214,24:PRINT
  35. 420 GOSUB1040
  36. 430 IFB>2THENIFRND(1)<.3THENB=B-2
  37. 440 IFB+W<38THENIFRND(1)<.3THENB=B+2
  38. 450 PRINTLEFT$("[192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193]",B);TAB(B+W);
  39. 460 PRINTLEFT$("[192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193][192][193]",38-(B+W));
  40. 470 PRINT"[193][157][148][192]";
  41. 480 F=64+2*INT(RND(1)*3):P=B+INT(RND(1)*(W-1))
  42. 490 C=-5*(F=64)-3*(F=66)-2*(F=68)
  43. 500 IFRND(1)<.4THENPOKE1984+P,F:POKE1985+P,F+1:POKE56256+P,C:POKE56257+P,C
  44. 510 POKE648,60:PRINT"";TAB(16-FNLG(SC));SC;TAB(28);R+1;"[157] ";
  45. 520 POKE648,4:PRINT"";
  46. 530 IFR=0THEN550
  47. 540 IFSC>HS(R)THENR=R-1
  48. 550 IFSC>NTHENN=N+200:W=W-4:B=B+2:IFW<12THENW=12:B=B-2
  49. 560 POKES,-128*(PEEK(2040)<>194)
  50. 570 SC=SC+1:IFPEEK(BC)=0THEN410
  51. 580 REM CRASH!!!
  52. 590 POKE53274,0:SYS65418:POKES+1,100:POKES+4,128:POKES+6,253:POKES+4,129
  53. 600 POKES+4,128:POKE53272,30:POKE56334,1
  54. 610 FORQ=160TO150STEP-1:POKE53249,Q:FORD=1TO15:POKE53281,DAND15:NEXTD,Q
  55. 620 FORQ=150TO160:POKE53249,Q:FORD=1TO15:POKE53281,DAND15:NEXTD,Q
  56. 630 POKE2040,195:POKE53281,1
  57. 640 REM DOG
  58. 645 POKES+5,2
  59. 650 POKE53288,7:POKE2041,196:POKE53251,159:POKE53277,2:POKE53250,0:POKE53269,3
  60. 655 POKES+6,0:POKES+4,129:POKES+1,48
  61. 660 SK=PEEK(53248)+256*(PEEK(53264)AND1):FORDG=0TO344STEP4
  62. 670 IFSK<DGTHENSK=DG
  63. 680 POKE53248,SKAND255:POKE53250,DGAND255
  64. 685 POKE53264,(DGAND256)/128+(SKAND256)/256
  65. 686 POKES+4,128:POKES+4,129
  66. 687 FORD=1TO25:NEXT
  67. 690 NEXT
  68. 700 POKES+4,128:POKES+1,5:POKES+6,240:POKES+5,0
  69. 710 POKE53269,1:POKE53264,0:POKE53248,0
  70. 740 PRINT"[147]GAME OVER"
  71. 750 PRINT"FINAL SCORE=";SC
  72. 760 FORR=40TO1STEP-1:IFSC>HS(R)THENNEXT
  73. 770 FORD=1TO2000:NEXT
  74. 780 R=R+1:IFR=41THEN270
  75. 790 PRINT"[147]YOU ARE ON THE HIGH-SCOREBOARD!!!!!! "
  76. 800 PRINT" IN POSITION #";R;"[157].  ENTER YOUR INITIALS."
  77. 810 PRINT"     UP & DOWN RUN THROUGH ALPHABET"
  78. 820 PRINT"LEFT & RIGHT SELECT WHERE TO PUT LETTER"
  79. 830 PRINT" FIRE LOCKS INITIALS IN AND SAVES BOARD"
  80. 840 FORQ=39TORSTEP-1:HS(Q+1)=HS(Q):HS$(Q+1)=HS$(Q):NEXT:HS(R)=SC:HS$(R)=""
  81. 850 L=0:Z=1:FORQ=1562TO1564:POKEQ,96:NEXT
  82. 860 POKE1602+L,30:POKE1562+L,Z:POKE55834+L,5:POKE55874+L,5
  83. 870 FORD=1TO50:NEXT
  84. 880 P=PEEK(56320)AND15:IFP=7THENPOKE1602+L,32:L=L+1:IFL=3THENL=0
  85. 890 IFP=11THENPOKE1602+L,32:L=L-1:IFL=-1THENL=2
  86. 900 Z=PEEK(1562+L):IFP=14THENZ=Z+1:IFZ=32THENZ=96
  87. 910 IFZ=97THENZ=1
  88. 920 IFP=13THENZ=Z-1:IFZ=0THENZ=96
  89. 930 IFZ=95THENZ=31
  90. 940 IF(PEEK(56320)AND16)THEN860
  91. 950 FORQ=1TO3:Z=PEEK(1561+Q):IFZ=96THENHS$(R)=HS$(R)+"[160]":GOTO965
  92. 960 HS$(R)=HS$(R)+CHR$(Z+64)
  93. 965 NEXT
  94. 970 GOSUB1010:GOTO270
  95. 980 END
  96. 990 PRINT"[147]******  HIGHSCORES BEING CLEARED  ******"
  97. 1000 FORQ=1TO40:HS$(Q)="[160][160][160]":HS(Q)=0:NEXT
  98. 1010 OPEN1,8,2,"@0:HIGHS,S,W"
  99. 1020 FORQ=1TO40:PRINT#1,HS$(Q);",";HS(Q);CHR$(13);
  100. 1030 NEXT:CLOSE1:RETURN
  101. 1040 IF(PEEK(56320)AND16)THENRETURN
  102. 1050 POKES+24,0:POKE251,0
  103. 1060 IF(PEEK(56320)AND16)=0THEN1050
  104. 1070 IF(PEEK(56320)AND16)THEN1070
  105. 1080 IF(PEEK(56320)AND16)=0THEN1080
  106. 1090 POKES+24,15:POKE251,1:RETURN
  107. 1100 READA:IFA=-1THENRETURN
  108. 1110 FORQ=ATOA+7:READC:POKEQ,C:CK=CK+C:NEXT
  109. 1120 GOTO1100
  110. 1130 DATA14848,001,003,015,063,015,063,255,001
  111. 1140 DATA14856,128,192,240,252,240,252,255,128
  112. 1150 DATA14864,007,127,255,063,031,127,127,031
  113. 1160 DATA14872,248,224,252,255,254,240,255,252
  114. 1170 DATA14880,000,000,007,008,007,031,063,127
  115. 1180 DATA14888,000,128,240,252,062,223,239,224
  116. 1190 DATA12288,000,024,000,000,060,000,000,024
  117. 1200 DATA12296,000,000,126,000,000,153,064,000
  118. 1210 DATA12304,217,128,000,189,000,001,054,000
  119. 1220 DATA12312,000,036,000,000,072,000,000,144
  120. 1230 DATA12320,000,000,000,000,000,000,000,000
  121. 1240 DATA12328,000,000,000,000,000,000,000,000
  122. 1250 DATA12336,000,000,000,000,000,000,000,000
  123. 1260 DATA12344,000,000,000,000,000,000,000,196
  124. 1270 DATA12352,000,024,000,000,060,000,000,024
  125. 1280 DATA12360,000,000,126,000,002,153,000,001
  126. 1290 DATA12368,155,000,000,189,000,000,108,128
  127. 1300 DATA12376,000,036,000,000,018,000,000,009
  128. 1310 DATA12384,000,000,000,000,000,000,000,000
  129. 1320 DATA12392,000,000,000,000,000,000,000,000
  130. 1330 DATA12400,000,000,000,000,000,000,000,000
  131. 1340 DATA12408,000,000,000,000,000,000,000,196
  132. 1350 DATA12416,000,024,000,000,060,000,000,153
  133. 1360 DATA12424,000,000,255,000,000,153,000,000
  134. 1370 DATA12432,153,000,000,189,000,000,036,000
  135. 1380 DATA12440,000,036,000,000,066,000,000,066
  136. 1390 DATA12448,000,000,000,000,000,000,000,000
  137. 1400 DATA12456,000,000,000,000,000,000,000,000
  138. 1410 DATA12464,000,000,000,000,000,000,000,000
  139. 1420 DATA12472,000,000,000,000,000,000,000,214
  140. 1430 DATA12480,000,024,000,000,060,000,000,090
  141. 1440 DATA12488,000,000,126,000,000,153,000,002
  142. 1450 DATA12496,153,064,001,060,128,000,195,000
  143. 1460 DATA12504,000,066,000,000,036,000,000,000
  144. 1470 DATA12512,000,000,000,000,000,000,000,000
  145. 1480 DATA12520,000,000,000,000,000,000,000,000
  146. 1490 DATA12528,000,000,000,000,000,000,000,000
  147. 1500 DATA12536,000,000,000,000,000,000,000,215
  148. 1590 DATA 49152 , 120, 169, 33, 141, 20, 3, 169, 192
  149. 1600 DATA 49160 , 141, 21, 3, 169, 0, 141, 14, 220
  150. 1610 DATA 49168 , 169, 27, 141, 17, 208, 169, 50, 141
  151. 1620 DATA 49176 , 18, 208, 169, 1, 141, 26, 208, 88
  152. 1630 DATA 49184 , 96, 169, 1, 141, 25, 208, 173, 18
  153. 1640 DATA 49192 , 208, 201, 58, 240, 13, 169, 254, 141
  154. 1650 DATA 49200 , 24, 208, 169, 58, 141, 18, 208, 76
  155. 1660 DATA 49208 , 182, 192, 169, 30, 141, 24, 208, 169
  156. 1670 DATA 49216 , 50, 141, 18, 208, 165, 251, 208, 3
  157. 1680 DATA 49224 , 76, 49, 234, 173, 0, 220, 41, 8
  158. 1690 DATA 49232 , 208, 18, 238, 0, 208, 208, 5, 169
  159. 1700 DATA 49240 , 1, 141, 16, 208, 169, 193, 141, 248
  160. 1710 DATA 49248 , 7, 76, 49, 234, 173, 0, 220, 41
  161. 1720 DATA 49256 , 4, 208, 23, 206, 0, 208, 173, 0
  162. 1730 DATA 49264 , 208, 201, 255, 208, 5, 169, 0, 141
  163. 1740 DATA 49272 , 16, 208, 169, 192, 141, 248, 7, 76
  164. 1750 DATA 49280 , 49, 234, 169, 194, 141, 248, 7, 76
  165. 1760 DATA 49288 , 49, 234, 120, 169, 51, 133, 1, 169
  166. 1770 DATA 49296 , 0, 133, 251, 133, 253, 169, 208, 133
  167. 1780 DATA 49304 , 252, 169, 56, 133, 254, 160, 0, 177
  168. 1790 DATA 49312 , 251, 145, 253, 200, 208, 249, 230, 252
  169. 1800 DATA 49320 , 230, 254, 165, 254, 201, 58, 208, 237
  170. 1810 DATA 49328 , 169, 55, 133, 1, 88, 96, 162,0
  171. 1820 DATA 49336 , 169, 0, 157, 5, 216, 232, 224, 30
  172. 1830 DATA 49344 ,208,248,76,188,254,0,0,0
  173. 1840 DATA 15104,0,0,0,0,0,0,0,0
  174. 1841 DATA12544,000,000,000,000,000,000,000,000
  175. 1842 DATA12552,000,000,000,000,000,000,000,000
  176. 1843 DATA12560,000,008,000,000,014,000,032,014
  177. 1844 DATA12568,000,039,056,000,097,248,255,255
  178. 1845 DATA12576,248,016,131,048,016,147,048,127
  179. 1846 DATA12584,242,168,000,000,000,000,000,000
  180. 1847 DATA12592,000,000,000,000,000,000,000,000
  181. 1848 DATA12600,000,000,000,000,000,000,000,127,-1
  182.